# -*- coding:UTF-8 -*-
'''
开发环境：PyCharm
创建日期：2025/8/7 11:31
作   者：新启典学苑-樱桃
描   述：元素有隐藏属性，这类元素可以定位到，但是无法操作，无法点击、无法输入值。
        要操作有隐藏属性的元素，需要通过javaScript脚本临时删除隐藏属性。
        arguments[0].removeAttribute("属性名");   删除属性
        arguments[0].setAttribute("属性名", "属性值");  设置属性
        
        style='display:none'
        style='visibility:hidden'
'''
from time import sleep

from selenium import webdriver
from selenium.webdriver import Keys, ActionChains
from selenium.webdriver.common.by import By

driver = webdriver.Edge()  # 创建edge浏览器对象
driver.get("http://www.baidu.com")

a = driver.find_element(By.ID, "kw")  # 百度搜索输入框
a.clear()
a.send_keys("隐藏属性")
# 给元素a增加隐藏属性
driver.execute_script('arguments[0].setAttribute("style", "display:none");', a)
a = driver.find_element(By.ID, "kw")
try:
    a.clear()
    a.send_keys("隐藏属性")  # 抛出一个异常  ElementNotInteractableException  元素不可交互异常
except Exception as e:
    print("异常信息为：", e)

# 给元素删除隐藏属性
driver.execute_script('arguments[0].removeAttribute("style");', a)
a = driver.find_element(By.ID, "kw")
a.clear()
a.send_keys("隐藏属性")
sleep(10)
